//
//  E7DialogLayer.cpp
//  EndlessBattle
//
//  Created by cc on 12-3-30.
//  Copyright (c) 2012年 PalmGame. All rights reserved.
//

#include "E7DialogLayer.h"

CE7DialogLayer::CE7DialogLayer(CE7Layer* pParent)
{
    if (IsPad())
    {
        m_pBackSprite = new CE7Sprite() ;
        m_pBackSprite->Init("back_dialog.png") ;
        m_pBackSprite->setScale(1.0f) ;
        addChild(m_pBackSprite) ;
        
        m_pVictorySprite = new CE7Sprite() ;
        m_pVictorySprite->Init("label_victory.png") ;
        m_pVictorySprite->setScale(1.0f) ;
        m_pVictorySprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pVictorySprite->setIsVisible(false) ;
        addChild(m_pVictorySprite) ;
        
        m_pFailureSprite = new CE7Sprite() ;
        m_pFailureSprite->Init("label_failure.png") ;
        m_pFailureSprite->setScale(1.0f) ;
        m_pFailureSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pFailureSprite->setIsVisible(false) ;
        addChild(m_pFailureSprite) ;

        m_pLoseSprite = new CE7Sprite() ;
        m_pLoseSprite->Init("label_lose.png") ;
        m_pLoseSprite->setScale(1.0f) ;
        m_pLoseSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pLoseSprite->setIsVisible(false) ;
        addChild(m_pLoseSprite) ;

        m_pRetrySprite = new CE7Sprite() ;
        m_pRetrySprite->Init("label_retry.png") ;
        m_pRetrySprite->setScale(1.0f) ;
        m_pRetrySprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pRetrySprite->setIsVisible(false) ;
        addChild(m_pRetrySprite) ;

        m_pNextSprite = new CE7Sprite() ;
        m_pNextSprite->Init("label_next.png") ;
        m_pNextSprite->setScale(1.0f) ;
        m_pNextSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pNextSprite->setIsVisible(false) ;
        addChild(m_pNextSprite) ;
        
        m_pContinueSprite = new CE7Sprite() ;
        m_pContinueSprite->Init("label_continue.png") ;
        m_pContinueSprite->setScale(1.0f) ;
        m_pContinueSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pContinueSprite->setIsVisible(false) ;
        addChild(m_pContinueSprite) ;

        m_pStringLable = new CCLabelTTF() ;
        m_pStringLable->initWithString("YES 还是 NO?.", "Market Filter", 25.0f) ;
        m_pStringLable->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pStringLable->setIsVisible(true) ;
        addChild(m_pStringLable) ;

        m_pButtonYES = CCMenuItemImage::itemFromNormalImage("button_yes_n.png", "button_yes_s.png", this,
                                                            menu_selector(CE7DialogLayer::ClickedYES)) ;
        m_pButtonNO = CCMenuItemImage::itemFromNormalImage("button_no_n.png", "button_no_s.png", this,
                                                           menu_selector(CE7DialogLayer::ClickedNO)) ;
        m_pButtonOK = CCMenuItemImage::itemFromNormalImage("button_ok_n.png", "button_ok_s.png", this,
                                                           menu_selector(CE7DialogLayer::ClickedOK)) ;
        
        m_pButtonYES->setPosition(ccp(-80, -105)) ;
        m_pButtonNO->setPosition(ccp(80, -105)) ;
        
        m_pButtonOK->setPosition(ccp(0, -105)) ;
        m_pButtons = CCMenu::menuWithItems(m_pButtonYES, m_pButtonNO, m_pButtonOK, NULL) ;
        addChild(m_pButtons) ;
        setIsVisible(false) ;
        
        m_pParentLayer = pParent ;
    }
    else // iphone.
    {
        m_pBackSprite = new CE7Sprite() ;
        m_pBackSprite->Init("back_dialog_iphone.png") ;
        m_pBackSprite->setScale(1.0f) ;
        addChild(m_pBackSprite) ;

        m_pVictorySprite = new CE7Sprite() ;
        m_pVictorySprite->Init("label_victory_iphone.png") ;
        m_pVictorySprite->setScale(1.0f) ;
        m_pVictorySprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pVictorySprite->setIsVisible(false) ;
        addChild(m_pVictorySprite) ;

        m_pFailureSprite = new CE7Sprite() ;
        m_pFailureSprite->Init("label_failure_iphone.png") ;
        m_pFailureSprite->setScale(1.0f) ;
        m_pFailureSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pFailureSprite->setIsVisible(false) ;
        addChild(m_pFailureSprite) ;

        m_pLoseSprite = new CE7Sprite() ;
        m_pLoseSprite->Init("label_lose_iphone.png") ;
        m_pLoseSprite->setScale(1.0f) ;
        m_pLoseSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pLoseSprite->setIsVisible(false) ;
        addChild(m_pLoseSprite) ;
        
        m_pRetrySprite = new CE7Sprite() ;
        m_pRetrySprite->Init("label_retry_iphone.png") ;
        m_pRetrySprite->setScale(1.0f) ;
        m_pRetrySprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pRetrySprite->setIsVisible(false) ;
        addChild(m_pRetrySprite) ;
        
        m_pNextSprite = new CE7Sprite() ;
        m_pNextSprite->Init("label_next_iphone.png") ;
        m_pNextSprite->setScale(1.0f) ;
        m_pNextSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pNextSprite->setIsVisible(false) ;
        addChild(m_pNextSprite) ;
        
        m_pContinueSprite = new CE7Sprite() ;
        m_pContinueSprite->Init("label_continue_iphone.png") ;
        m_pContinueSprite->setScale(1.0f) ;
        m_pContinueSprite->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pContinueSprite->setIsVisible(false) ;
        addChild(m_pContinueSprite) ;

        m_pStringLable = new CCLabelTTF() ;
        m_pStringLable->initWithString("YES 还是 NO?.", "Market Filter", 11.0f) ;
        m_pStringLable->setPosition(ccp(m_pBackSprite->getPosition().x, m_pBackSprite->getPosition().y)) ;
        m_pStringLable->setIsVisible(true) ;
        addChild(m_pStringLable) ;
        
        m_pButtonYES = CCMenuItemImage::itemFromNormalImage("button_yes_n_iphone.png",
                                                            "button_yes_s_iphone.png",
                                                            this,
                                                            menu_selector(CE7DialogLayer::ClickedYES)) ;
        m_pButtonNO = CCMenuItemImage::itemFromNormalImage("button_no_n_iphone.png",
                                                           "button_no_s_iphone.png",
                                                           this,
                                                           menu_selector(CE7DialogLayer::ClickedNO)) ;
        m_pButtonOK = CCMenuItemImage::itemFromNormalImage("button_ok_n_iphone.png",
                                                           "button_ok_s_iphone.png",
                                                           this,
                                                           menu_selector(CE7DialogLayer::ClickedOK)) ;
        
        m_pButtonYES->setPosition(ccp(-80/2, -105/2)) ;
        m_pButtonNO->setPosition(ccp(80/2, -105/2)) ;

        m_pButtonOK->setPosition(ccp(0, -105/2)) ;
        m_pButtons = CCMenu::menuWithItems(m_pButtonYES, m_pButtonNO, m_pButtonOK, NULL) ;
        addChild(m_pButtons) ;
        setIsVisible(false) ;
        
        m_pParentLayer = pParent ;
    }
}

CE7DialogLayer::~CE7DialogLayer()
{
    removeAllChildrenWithCleanup(false) ;
//    SAFE_RELEASE(m_pBackSprite) ;
}

void CE7DialogLayer::ShowYESNO()
{
    // debug codes.
    if (getIsVisible())
    {
        printf("CE7DialogLayer::ShowYESNO is visible\n") ;
        return ;
    }

    m_pButtonYES->setIsVisible(true) ;
    m_pButtonNO->setIsVisible(true) ;
    m_pButtonOK->setIsVisible(false) ;
    m_pButtons->setIsVisible(true) ;
    setIsVisible(true) ;
}

void CE7DialogLayer::ShowOK()
{
    // debug codes.
    if (getIsVisible())
    {
        printf("CE7DialogLayer::ShowOK is visible\n") ;
        return ;
    }

    m_pButtonYES->setIsVisible(false) ;
    m_pButtonNO->setIsVisible(false) ;
    m_pButtonOK->setIsVisible(true) ;
    m_pButtons->setIsVisible(true) ;
    setIsVisible(true) ;
}

void CE7DialogLayer::Hide()
{
    setIsVisible(false) ;
}

void CE7DialogLayer::SetVictory()
{
    m_pVictorySprite->setIsVisible(true) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pLoseSprite->setIsVisible(false) ;
    m_pRetrySprite->setIsVisible(false) ;
    m_pNextSprite->setIsVisible(false) ;
    m_pContinueSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetFailure()
{
    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(true) ;
    m_pLoseSprite->setIsVisible(false) ;
    m_pRetrySprite->setIsVisible(false) ;
    m_pNextSprite->setIsVisible(false) ;
    m_pContinueSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetLose()
{
    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pLoseSprite->setIsVisible(true) ;
    m_pRetrySprite->setIsVisible(false) ;
    m_pNextSprite->setIsVisible(false) ;
    m_pContinueSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetRetry()
{
    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pLoseSprite->setIsVisible(false) ;
    m_pRetrySprite->setIsVisible(true) ;
    m_pNextSprite->setIsVisible(false) ;
    m_pContinueSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetNext()
{
    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pLoseSprite->setIsVisible(false) ;
    m_pRetrySprite->setIsVisible(false) ;
    m_pNextSprite->setIsVisible(true) ;
    m_pContinueSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetContinue()
{
    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pLoseSprite->setIsVisible(false) ;
    m_pRetrySprite->setIsVisible(false) ;
    m_pNextSprite->setIsVisible(false) ;
    m_pContinueSprite->setIsVisible(true) ;
    m_pStringLable->setIsVisible(false) ;
}

void CE7DialogLayer::SetSingleLine(const char* str)
{
    m_pStringLable->setString(str) ;

    m_pVictorySprite->setIsVisible(false) ;
    m_pFailureSprite->setIsVisible(false) ;
    m_pStringLable->setIsVisible(true) ;
}

void CE7DialogLayer::ClickedYES()
{
    if (s_bPlaySound)
    {
        SimpleAudioEngine::sharedEngine()->playEffect(sound_button) ;
    }

    Hide() ;
    printf("CE7DialogLayer::ClickedYES\n") ;
    m_pParentLayer->DialogYES() ;
}

void CE7DialogLayer::ClickedNO()
{
    if (s_bPlaySound)
    {
        SimpleAudioEngine::sharedEngine()->playEffect(sound_button) ;
    }

    Hide() ;
    printf("CE7DialogLayer::ClickedNO\n") ;
    m_pParentLayer->DialogNO() ;
}

void CE7DialogLayer::ClickedOK()
{
    if (s_bPlaySound)
    {
        SimpleAudioEngine::sharedEngine()->playEffect(sound_button) ;
    }

    Hide() ;
    printf("CE7DialogLayer::ClickedOK\n") ;
    m_pParentLayer->DialogOK() ;
}



















